1. Field of the Invention
The present invention relates generally to a system for interfacing peripheral computer cards to a personal computer (PC) system. More particularly, the present invention relates to a PC system that includes expansion slots for receiving expansion cards and for automatically determining the compatibility of the expansion card with the expansion slot. Still more particularly, the invention relates to a universal expansion interface slot and logic for determining the type of expansion card plugged into the expansion slot to allow the computer to communicate properly to the expansion card.
2. Background of the Invention
A PC system typically includes a combination of fixed internal components and peripheral external components that have been added to the system to provide features not included as part of the fixed PC system. To accommodate the peripheral devices that a user may choose to add to the PC system, computer manufacturers typically provide expansion slots and ports to facilitate the system expansion. The PC system supplied by the computer manufacturer typically includes a main printed circuit board (commonly referred to as the "motherboard") on which most of the fixed internal circuitry of the PC is mounted. The circuitry mounted on the motherboard typically comprises integrated circuits (IC's). The various IC's on the motherboard electrically connect via electrical buses on the motherboard, including, for example a host bus that connects the central processing unit (CPU) to the memory controller, and a system bus that connects to the other system components. Additional peripheral busses may also be provided in the computer system.
The motherboard also typically includes sockets or external connections for receiving peripheral expansion cards to supplement the circuitry provided on the motherboard. To minimize space on the motherboard, one or more riser boards may be used that connect electrically to the motherboard. A riser board extends vertically from the motherboard (which typically is positioned horizontally in the PC chassis) and includes multiple expansion slots. The expansion slots are displaced vertically on the riser card, enabling computer expansion cards to be inserted horizontally into the expansion slots.
PC systems generally include one or more peripheral busses interconnecting the expansion slots to the system bus. The peripheral busses thus support connection of peripheral components via expansion cards to provide a variety of functions such as network connections, extended memory, enhanced audio and video capabilities, and many other capabilities not available in the circuitry provided by the computer manufacturer on the motherboard. Various peripheral busses are available, including ISA, EISA, PCI, USB, and other suitable busses. These busses provide a communication path between the peripheral components and other system components, such as the central processing unit ("CPU"). For purposes of this invention, the expansion slots will be described assuming a connection to the PCI (Peripheral Computer Interface) bus, with the understanding that the principles of the present invention may be applied to other peripheral bus systems that support expansion cards. Like other bus protocols, the PCI bus standard dictates the clock signal frequency, power supply and signal voltage levels, as well as other electrical and timing parameters, communication protocols, and physical restrictions to insure compatibility between expansion cards and expansion slots that are provided by different manufacturers.
Currently, two PCI bus standards exists. A 5 volt PCI standard requires the bus to operate at 33 MHz and allows both 3.3 volt and 5 volt signal levels. The 3.3 volt standard allows both 33 MHz and 66 MHz bus frequencies, and allows only 3.3 volt signal levels, precluding 5 volts signal levels. To determine an appropriate bus frequency for a 3.3 volt PCI bus, the computer system decodes a M66EN signal from each card on the bus. In accordance with the 3.3 volt PCI standard, the M66EN signal defines the appropriate frequency for that card. Because of the frequency and voltage differences between the standards, an interface expansion card designed to the 5 volt standard cannot be connected to a PCI bus designed to the 3.3 volt standard. Connecting an expansion card to an incompatible expansion slot could lead to permanent system and card damage. To provide for the ability to interface with expansion cards designed to either the 3.3 volt or 5 volt standards, many PC system include one or more PCI busses dedicated to each standard. For example, a PC system may include two PCI busses, one PCI bus operating as a 3.3 volt bus and the other operating as a 5 volt bus. Providing both bus types in a PC system is desirable for compatibility with both types of interface cards.
To prevent the connection of an expansion card to an incompatible peripheral bus in a PC, the expansion slots provided in the PC system typically include physical "keys". Referring to FIG. 1A, the PCI expansion slot 90 mates with expansion card connector 80. Similarly, PCI expansion slot 90' in FIG. 1B mates with expansion card connector 80'. As illustrated in FIGS. 1A and 1B, each expansion slot 90, 90' includes a key 95, 95'. Keys 95, 95' are mechanical tabs manufactured as a part of the PCI expansion slot in place of connector pins. For a PCI expansion card to plug into a keyed expansion slot, the PCI expansion card must have a mating key recess (such as recess 85, 85') that fits over the key 95, 95'.
The expansion slots for a 3.3 volt PCI bus and for a 5 volt PCI bus are similar, in terms of overall size and pin arrangement. However, to prevent a PCI expansion card from being plugged into an incompatible PCI expansion slot, a 3.3 volt expansion slot has a key located in a different place on the connector than a 5 volt expansion slot. Thus, an interface card keyed to a 3.3 volt expansion slot cannot physically be inserted into a 5 volt expansion slot, and vice versa. Referring again to FIGS. 1A and 1B, the expansion slot 90 (FIG. 1A) represents a socket keyed to accept an expansion card 80 operating at 3.3 volt signal levels, while expansion slot 90' (in FIG. 1B) represents a socket keyed to accept an expansion card 80' operating at 5 volt signal levels.
Some PCI expansion cards are referred to as "universal" cards because these cards have key recesses 85, 85' in both locations as shown in FIG. 1C. As such, a universal card 80" physically can be connected to any PCI expansion slot, regardless of whether the expansion slot connector has one or both keys 95, 95'. Universal cards typically are designed to be 5 volt tolerant, which means that universal cards can receive and properly operate with both 5 volt and 3.3 volt signal levels. Because a logic high level for 5 volt signaling on a PCI bus includes voltages exceeding 2 V, a universal card with 5 volt tolerant inputs and which drives 3.3 volt output signals can be connected to either a 3.3 volt or a 5 volt bus. Universal cards also may be designed for 33 or 66 MHz operation. All 66 MHz universal cards, however, can operate at either 33 MHz or 66 MHz. With 5 volt tolerant inputs, 66 MHz universal cards thus can operate with either 5 volt or 3.3 volt signal levels and at frequencies of either 33 MHz or 66 MHz. All 33 MHz universal cards can operate with either voltage level, but can only operate at a frequency of 33 MHz.
In addition to insuring compatibility between expansion cards and expansion slots, the connector keys also insure the integrity of the connection between the expansion slot and the mating expansion card. Without keys, an expansion card may not be properly aligned in the expansion slot. Thus, the expansion card may be off-center or skewed in the expansion slot. In such a situation, there is a risk that some of the pins in the expansion slot may not mate properly with the expansion card. Further, there is a risk that pins on the connectors may improperly short posing the potential for damage to the computer system and the expansion card.
Because of the aforementioned compatibility problems, computers with multiple PCI busses necessarily have each expansion slot dedicated to a particular PCI bus standard and use physical keys in the slots to prevent insertion of an expansion card into an incompatible expansion slot. Dedicating expansion slots to a particular PCI bus standard, however, reduces the flexibility of the computer system. This problem results from the computer manufacturer having to predetermine which slots are dedicated to each PCI bus standard. This determination may coincide with the preferences of some operators, but not all. The problem is exemplified by a computer having two slots dedicated to a 5 volt PCI bus and two slots dedicated to a 3.3 volt bus. A user who only has one 3.3 volt expansion cards does not need two 3.3 volt expansion slots. Such an operator might prefer more 5 volt slots, and only one 3.3 volt slot. Further, the user's preferences may change as new interface expansion cards become available or as the user's computing needs change.
Although universal PCI expansion cards could be provided that are operable with either 5 volt signal levels or 3.3 volt levels, the fact remains that 3.3 volt and 5 volt cards are still available and still in use. Because users may have a mix of all three card types (3.3 volt, 5 volt, and universal), a computer system that cannot handle all of the available expansion cards may not be well-received by consumers.
It would be advantageous to develop a computer system that accepts all expansion cards and automatically determines the type of expansion card plugged into an expansion slot before the peripheral bus becomes fully operational. Such an expansion slot could then be connected to the appropriate peripheral bus, or alternatively an appropriate error message could be generated to the operator, without the risk of damage occurring to the system if an incompatible expansion card is inserted in a slot.